/* debug.h: verbosity levels and debug conditionals */

#ifndef SOS_DEBUG_H
#define SOS_DEBUG_H

/**
 * Debug level thresholds:
 * 2: Crucial operations, fatal operations.
 * 6: High granularity: semantically relevant stuff
 * 7: Very high granularity: concurrent control flow
 * 9: Ultraspam
 */

#define SOS_DEBUG_MAIN        (6)
#define SOS_DEBUG_SYSCALL     (6)
#define SOS_DEBUG_ELFLOAD     (0)
#define SOS_DEBUG_PROCESS     (0)
#define SOS_DEBUG_PROC_CREATE (0)
#define SOS_DEBUG_PROC_DELETE (0)
#define SOS_DEBUG_PROC_WAIT   (0)
#define SOS_DEBUG_PROC_STATUS (0)

/* SOS task queue */
#define SOS_DEBUG_TASK        (0)

/* Physical memory management */
#define SOS_DEBUG_FRAMETABLE  (0)
#define SOS_DEBUG_SWAP        (0)

/* Virtual memory management */
#define SOS_DEBUG_PAGETABLE   (0)
#define SOS_DEBUG_VMREGIONS   (0)

/* Swap table management */
#define SOS_DEBUG_SWAPTABLE   (0)

/* VFS and file systems */
#define SOS_DEBUG_VFS         (0)
#define SOS_DEBUG_NFS         (0)
#define SOS_DEBUG_CONSOLE     (0)

/* Clock driver */
#define SOS_DEBUG_CLOCK       (0)

/* Coroutines */
#define SOS_DEBUG_PICORO      (0)

#endif // SOS_DEBUG_H
